import request from '@/utils/request'

/**
 * 获取新的商品信息
 * @param {String} skuId -- 商品的SKUID
 * @returns Promise
 */
export const getNewCartGoods = (skuId) => {
  return request(`/goods/stock/${skuId}`, 'get')
}

/**
 * 获取商品对应的sku数据
 * @param {string} skuId --  商品的skuid
 * @returns Promise
 */
export const getGoodsSku = (skuId) => {
  return request(`/goods/sku/${skuId}`, 'get')
}

/**
 *
 * @param {Array<Object>} cart
 * @param {String} skuId --  商品的sku
 * @param {Boolean} selected -- 是否选中
 * @param {Integer} count  --  数量
 */
export const mergeCart = (cart) => {
  return request('/member/cart/merge', 'post', cart)
}

/**
 * 登录后获取购物车列表
 * @returns
 */
export const findCart = () => {
  return request('/member/cart', 'get')
}

/**
 * 登录状态下的加入购物车
 * @param {Object} skuId --商品的skuid
 * @returns
 */
export const insertCart = ({ skuId, count }) => {
  return request('/member/cart', 'post', { skuId, count })
}

/**
 *
 * @param {Array{String}} ids --skuid的集合
 * @returns
 */
export const deleteCart = (ids) => {
  return request('/member/cart', 'delete', { ids })
}

/**
 * 修改购物车商品的选中状态和数量
 * @param {String} skuId -- 商品的skuid
 * @param {Boolean} selected -- 商品的选中状态
 * @param {Integer} count -- 商品的数量
 * @returns  Promise
 */
export const updateCart = ({ skuId, selected, count }) => {
  return request(`/member/cart/${skuId}`, 'put', { selected, count })
}

/**
 * 全选和取消全选
 * @param {Boolean} selected  -选中
 * @param {Array<String>} ids  -skuid的集合
 * @returns
 */
export const checkAllCart = ({ selected, ids }) => {
  return request('/member/cart/selected', 'put', { selected, ids })
}
